package com.diors.commons.script;

import java.io.File;
import java.io.FileFilter;
import java.util.List;

/**
 * 脚本工具类
 * @author	darren.ouyang <ouyang.darren@gmail.com>
 * @date	2013-10-16
 * @version 1.0
 * @copyright Copyright (c) 2013, darren.ouyang
 */
class ScriptUtil 
{
	
	static String getClassName (String srcPath, File file)
	{
		String top = srcPath.replace("\\", "\\\\").replace("/", "\\\\");
		String path = file.getPath(); 
		String className = path.replaceFirst(top, "").
				replaceFirst(".java", "").replace("\\", "."); 
		if (className.indexOf(".") == 0)
			return className.substring(1, className.length());

		return className;
	}
	
	/**
	 * 查找该目录下的所有的java文件
	 * @param sourceFile
	 * @param sourceFileList
	 * @throws Exception
	 */
	static void getSourceFiles(File sourceFile, List<File> sourceFileList)
	{
		// 文件或者目录必须存在
		if (sourceFile.exists() && sourceFileList != null) 
		{
			// 若file对象为目录
			if (sourceFile.isDirectory()) 
			{
				// 得到该目录下以.java结尾的文件或者目录
				File[] childrenFiles = sourceFile.listFiles(new FileFilter() 
				{
					public boolean accept(File pathname) 
					{
						if (pathname.isDirectory()) 
						{
							return true;
						} 
						else 
						{
							String name = pathname.getName();
							return name.endsWith(".java") ? true : false;
						}
					}
				});
				
				// 递归调用
				for (File childFile : childrenFiles) 
					getSourceFiles(childFile, sourceFileList);
				
			} 
			else 
			{
				// 若file对象为文件
				sourceFileList.add(sourceFile);
			}
		}
	}

}
